コンテナ & gcloud 認証情報
まず docker run -ti --name gcloud-config google/cloud-sdk gcloud auth login でログインした認証情報を gloud-config コンテナに保存して、--volumes-from=gcloud-config しつつ別のコンテナを動かす
docker.io/google/cloud-sdk:slim 使うほうが良さそう
VOLUME [/root/.config] している
-v ~/.config/gcloud/:/root/.config/gcloud/ でもよい
$ docker run -it --name gcloud-config google/cloud-sdk:slim gcloud auth login --update-adc
/root/.config/gcloud 以下に認証情報が作られる
--update-adc しないと application default がない(gcloud auth application-default-login でもよい)
root で作られる
nonroot ユーザで動作するので --volumes-from=gcloud-config で作ったものを読めない
$ docker run --rm -it --volumes-from=gcloud-config -p3306:3306 -uroot asia.gcr.io/cloudsql-docker/gce-proxy /cloud_sql_proxy -instances=PROJECT_ID:REGION:INSTANCE=tcp:0.0.0.0:3306
root で起動すれば読んではくれる(あまりやりたくはない)
gcloud の認証をコンテナ外から渡すには、~/.config/gcloud をマウントしてしまうのも手
gcloud-config volumeいらない、このほうが楽か...
$ docker run --rm -it -v ~/.config/gcloud:/home/nonroot/.config/gcloud -p3306:3306 asia.gcr.io/cloudsql-docker/gce-proxy /cloud_sql_proxy ...
~/.config/gcloud/application_default_credentials.json:/home/nonroot/.config/gcloud/application_default_credentials.json でもいい
gcr.io/google.com/cloudsdktool/google-cloud-cli というのもある
asia.gcr.io にもある、今はもう費用変わらないっけ?
entrypoint が gcloud でない